package com.deercrowing.takeaway.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.deercrowing.takeaway.entity.CategoriesEntity;
import com.deercrowing.takeaway.vo.CategoriesPageVO;
import com.deercrowing.takeaway.vo.CategoriesVO;

import java.util.List;

/**
 * 分类表(Categories)表服务接口
 *
 * @author guoyongxiang
 * @since 2024-07-10 15:09:05
 */
public interface CategoriesService extends IService<CategoriesEntity> {

    /**
     * 修改分类状态
     *
     * @param status
     * @param id
     */
     void categoryStatusUpdate(Short status, Integer id);

    /**
     * 删除关联菜品、套餐分类
     *
     * @param ids
     */
     void deleteConnectRelates(List<Integer> ids);

    /**
     * 批量删除关联菜品、套餐分类
     *
     * @param id
     */
    void deleteConnectRelates(Integer id);

    /**
     * 显示所有启用分类（用户端）
     *
     * @return
     */
     List<CategoriesEntity> searchAllCategory();

    /**
     * 按搜索内容查询
     *
     * @param categoriesPageVO
     * @return
     */
     IPage<CategoriesVO> searchByCondition(CategoriesPageVO categoriesPageVO);

    /**
     * 根据ID查询实体类
     *
     * @param id
     * @return
     */
    CategoriesVO searchById(Integer id);

    /**
     * 查询实体类后赋值视图类返回
     *
     * @param type
     * @return
     */
    List<CategoriesVO> searchByType(Short type);

    /**
     * 更新字段至数据库
     *
     * @param id
     * @param categoriesVO
     */
    void updateInfoToDB(Integer id, CategoriesVO categoriesVO);

    /**
     * 新增数据
     *
     * @param categoriesVO
     */
    void insertInfoToDB(CategoriesVO categoriesVO);
}

